/**
 * 枚举值模块
 * 根据台服原版提供默认值
 * 首次启动时初始化数据库     
 * */
const { sqlite } = require("../JDBC");
const Path = require('path')

const windows = global.windows;

const enums = {}

const init = () => {
    windows.setInitModule("DnfEnum");

    sqlite.tableExist("enum").then(exist => {
        if (!exist) {
            //不存在表,导入default.sql
            let sqlPath = Path.join(__dirname, "default.sql")
            sqlite.doFile(sqlPath)
                .then(init);//再次执行init()
            return
        }

        console.log("start seting enums")
        sqlite.enums.queryAll().then(result => {
            if (!result) {
                return
            }

            result.forEach(e => {
                let type = e.type
                if (!enums[type]) {
                    enums[type] = new Array();
                }
                enums[type].push(e);
            })
            console.log("set enums success")
            windows.setInitModuleSuccess("DnfEnum");
        })
    })
}

const initIpcMain = (ipcMain) => {
    ipcMain = require("electron").ipcMain
    ipcMain.handle("get_enum", e => {
        console.log("DnfEnum  收到请求")
        return enums
    })
}

initIpcMain();
init();

module.exports = enums;